package com.vietnam.power.dao;

import java.util.Date;

import com.vietnam.power.persistence.UserInfo;

/**
 *
 * This interface is used to map the updatedby,updateddate
 * columns in the tables. All the objects (representing tables) that have the above
 * mentioned columns should implement this interface so that the values can be
 * populated by AuditInterceptor.
 *
 *
 */
public interface IAuditUpdateTable extends IAuditTable{

	/**
	 * Retrieve the person who has updated the record in the table.
	 *
	 * @return - UserInfo - user information
	 */
	UserInfo getUpdatedBy();

	/**
	 * This method is used to set the person who will update the record in the table.
	 *
	 * @param updatedBy the new updated by
	 * @return - UserInfo - user information
	 */
	void setUpdatedBy(UserInfo updatedBy);

	/**
	 * Retrieve the time when the record is updated in the table.
	 *
	 * @return - UserInfo - user information
	 */
	Date getUpdatedDate();

	/**
	 * This method is set the time when the record will be updated in the table.
	 *
	 * @param updatedDate the new updated date
	 * @return - UserInfo - user information
	 */
	void setUpdatedDate(Date updatedDate);
}